package com.gqj.meter.domain;

import com.gqj.common.annotation.Excel;
import com.gqj.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.poi.ss.usermodel.IndexedColors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 存放区信息对象 MD_STORAGE_AREA_INFO
 *
 * @author lxq
 * @date lxq-01-09
 */
public class MdStorageAreaInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 存放区标识，本实体记录的唯一标识
     */
    @ApiModelProperty("存放区标识")
    private Long storeAreaId;

    /**
     * 操作标识
     */
    @ApiModelProperty("操作标识")
    private Long operId;

    /**
     * 存放区编号，存放区的用户自编号
     */
    @NotBlank(message = "存放区编号不允许为空")
    @ApiModelProperty("存放区编号")
    private String storeAreaNo;

    /**
     * 存放区名称
     */
    @NotNull(message = "存放区名称不能为空")
    @ApiModelProperty("存放区名称")
    private String storeAreaName;

    /**
     * 存放区类别，01：待检、02：待验收、03：淘汰、04：待报废、05：待装
     */
    @ApiModelProperty("存放区类别")
    private String sortCode;

    /**
     * 存放区状态，01：运行、02：废弃、03：锁定
     */
    @ApiModelProperty("存放区状态")
    private String statusCode;

    /**
     * 库房标识，用来与库房进行关联
     */
    @ApiModelProperty("库房标识")
    @Excel(name = "库房标识", headerBackgroundColor = IndexedColors.RED1,prompt="请输入系统中对应的库房标识",sort = 1)
    private Long whId;

    /**
     * 库区标识，用来与库区进行关联
     */
    @ApiModelProperty("库区标识")
    private Long whAreaId;

    /**
     * 存放区类型，01：整区堆积、02：行列堆积、03：自动表架、04：横梁式货架、05：重力式货架
     */
    @ApiModelProperty("存放区类型")
    @Excel(name = "存放区类型",dictType = "sa_type_code")
    private String typeCode;

    /**
     * 行数，存放区共有多少行
     */
    @ApiModelProperty("行数")
    @Excel(name = "行数")
    private Integer whRows;

    /**
     * 列数，存放区共有多少列
     */
    @ApiModelProperty("列数")
    @Excel(name = "列数")
    private Integer whCols;

    /**
     * 运转方式，01：人工、02：机器
     */
    @ApiModelProperty("运转方式")
    @Excel(name = "运转方式",dictType = "sa_operate_type_code")
    private String operateTypeCode;

    @ApiModelProperty("库房编号")
    private String whNo;

    /**
     * 库房名称
     */
    @ApiModelProperty("库房名称")
    private String whName;

    /**
     * 库区名称
     */
    @ApiModelProperty("库区名称")
    private String whAreaNo;

    /**
     * 库区名称
     */
    @ApiModelProperty("库区名称")
    private String whAreaname;

    /**
     * 存放区主键集合
     */
    @ApiModelProperty("存放区主键集合")
    private Long[] storeAreaIds;

    public Long[] getStoreAreaIds() {
        return storeAreaIds;
    }

    public void setStoreAreaIds(Long[] storeAreaIds) {
        this.storeAreaIds = storeAreaIds;
    }

    public void setStoreAreaId(Long storeAreaId) {
        this.storeAreaId = storeAreaId;
    }

    public Long getStoreAreaId() {
        return storeAreaId;
    }

    public void setOperId(Long operId) {
        this.operId = operId;
    }

    public Long getOperId() {
        return operId;
    }

    public void setStoreAreaNo(String storeAreaNo) {
        this.storeAreaNo = storeAreaNo;
    }

    public String getStoreAreaNo() {
        return storeAreaNo;
    }

    public void setStoreAreaName(String storeAreaName) {
        this.storeAreaName = storeAreaName;
    }

    public String getStoreAreaName() {
        return storeAreaName;
    }

    public void setSortCode(String sortCode) {
        this.sortCode = sortCode;
    }

    public String getSortCode() {
        return sortCode;
    }

    public void setStatusCode(String statusCode) {
        this.statusCode = statusCode;
    }

    public String getStatusCode() {
        return statusCode;
    }

    public void setWhId(Long whId) {
        this.whId = whId;
    }

    @NotNull(message = "存放区标识不能为空")
    public Long getWhId() {
        return whId;
    }

    public void setWhAreaId(Long whAreaId) {
        this.whAreaId = whAreaId;
    }

    @NotNull(message = "存放区标识不能为空")
    public Long getWhAreaId() {
        return whAreaId;
    }

    public void setTypeCode(String typeCode) {
        this.typeCode = typeCode;
    }

    public String getTypeCode() {
        return typeCode;
    }

    public void setWhRows(Integer whRows) {
        this.whRows = whRows;
    }

    public Integer getWhRows() {
        return whRows;
    }

    public void setWhCols(Integer whCols) {
        this.whCols = whCols;
    }

    public Integer getWhCols() {
        return whCols;
    }

    public void setOperateTypeCode(String operateTypeCode) {
        this.operateTypeCode = operateTypeCode;
    }

    public String getOperateTypeCode() {
        return operateTypeCode;
    }

    public String getWhNo() {
        return whNo;
    }

    public void setWhNo(String whNo) {
        this.whNo = whNo;
    }

    public String getWhName() {
        return whName;
    }

    public void setWhName(String whName) {
        this.whName = whName;
    }

    public String getWhAreaNo() {
        return whAreaNo;
    }

    public void setWhAreaNo(String whAreaNo) {
        this.whAreaNo = whAreaNo;
    }

    public String getWhAreaname() {
        return whAreaname;
    }

    public void setWhAreaname(String whAreaname) {
        this.whAreaname = whAreaname;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("storeAreaId", getStoreAreaId())
                .append("operId", getOperId())
                .append("storeAreaNo", getStoreAreaNo())
                .append("storeAreaName", getStoreAreaName())
                .append("sortCode", getSortCode())
                .append("statusCode", getStatusCode())
                .append("whId", getWhId())
                .append("whAreaId", getWhAreaId())
                .append("typeCode", getTypeCode())
                .append("whRows", getWhRows())
                .append("whCols", getWhCols())
                .append("operateTypeCode", getOperateTypeCode())
                .toString();
    }
}
